package com.flying.invest.strategy.model;

import java.util.Date;

import com.flying.framework.data.Data;
import com.flying.common.util.Codes;
import com.flying.framework.annotation.Param;
import com.flying.framework.data.DataSerializable;
import com.flying.framework.metadata.Meta;

@SuppressWarnings("serial")
@Meta(id="i_strategy_auto_plan_detail",title="定投明细", table="i_strategy_auto_plan_detail", primaryKeys={"detail_id"})
public class StrategyAutoPlanDetail extends Data implements DataSerializable {
	public final static String ENTITY_NAME = "i_strategy_auto_plan_detail";
	
	public final static String DETAIL_ID = "detail_id";
	public final static String USER_ID = "user_id";
	public final static String TYPE_ID = "type_id";
	public final static String INVEST_ID = "invest_id";
	public final static String STRATEGY_ID = "strategy_id";
	public final static String NUM = "num";
	public final static String PLAN_DATE = "plan_date";
	public final static String PLAN_AMOUNT = "plan_amount";
	public final static String PLAN_QUANTITY = "plan_quantity";
	public final static String ACTUAL_DATE = "actual_date";
	public final static String ACTUAL_AMOUNT = "actual_amount";
	public final static String ACTUAL_QUANTITY = "actual_quantity";
	public final static String ACTUAL_PRICE = "actual_price";
	public final static String TRANSACTION_ID = "transaction_id";
	
	
	@Param(value=DETAIL_ID,   required=true,   maxlength=0,	desc="ID" , generator=Codes.AUTO_INCREMENT)
	private Long detailId;
	
	@Param(value=USER_ID,   required=true,   maxlength=0,	desc="所属用户" )
	private Long userId;
	
	@Param(value=TYPE_ID,   required=true,   maxlength=0,	desc="策略类型" )
	private Long typeId;
	
	@Param(value=INVEST_ID,   required=true,   maxlength=0,	desc="投资项目" )
	private Long investId;
	
	@Param(value=STRATEGY_ID,   required=true,   maxlength=0,	desc="策略ID" )
	private Long strategyId;
	
	@Param(value=NUM,   required=true,   maxlength=0,	desc="期数" )
	private Integer num;
	
	@Param(value=PLAN_DATE,   required=true,   maxlength=0,	desc="计划日期" )
	private Date planDate;
	
	@Param(value=PLAN_AMOUNT,   required=false,   maxlength=0,	desc="计划金额" )
	private Double planAmount;
	
	@Param(value=PLAN_QUANTITY,   required=false,   maxlength=0,	desc="计划数量" )
	private Double planQuantity;
	
	@Param(value=ACTUAL_DATE,   required=false,   maxlength=0,	desc="实际日期" )
	private Date actualDate;
	
	@Param(value=ACTUAL_AMOUNT,   required=false,   maxlength=0,	desc="实际金额" )
	private Double actualAmount;
	
	@Param(value=ACTUAL_QUANTITY,   required=false,   maxlength=0,	desc="实际数量" )
	private Double actualQuantity;
	
	@Param(value=ACTUAL_PRICE,   required=false,   maxlength=0,	desc="实际价格" )
	private Double actualPrice;
	
	@Param(value=TRANSACTION_ID,   required=false,   maxlength=0,	desc="交易ID" )
	private Long transactionId;
	
	
	public Long getDetailId() {
		return this.detailId;
	}
	
	public void setDetailId(Long detailId) {
		this.detailId = detailId;
	}
	
	public Long getUserId() {
		return this.userId;
	}
	
	public void setUserId(Long userId) {
		this.userId = userId;
	}
	
	public Long getTypeId() {
		return this.typeId;
	}
	
	public void setTypeId(Long typeId) {
		this.typeId = typeId;
	}
	
	public Long getInvestId() {
		return this.investId;
	}
	
	public void setInvestId(Long investId) {
		this.investId = investId;
	}
	
	public Long getStrategyId() {
		return this.strategyId;
	}
	
	public void setStrategyId(Long strategyId) {
		this.strategyId = strategyId;
	}
	
	public Integer getNum() {
		return this.num;
	}
	
	public void setNum(Integer num) {
		this.num = num;
	}
	
	public Date getPlanDate() {
		return this.planDate;
	}
	
	public void setPlanDate(Date planDate) {
		this.planDate = planDate;
	}
	
	public Double getPlanAmount() {
		return this.planAmount;
	}
	
	public void setPlanAmount(Double planAmount) {
		this.planAmount = planAmount;
	}
	
	public Double getPlanQuantity() {
		return this.planQuantity;
	}
	
	public void setPlanQuantity(Double planQuantity) {
		this.planQuantity = planQuantity;
	}
	
	public Date getActualDate() {
		return this.actualDate;
	}
	
	public void setActualDate(Date actualDate) {
		this.actualDate = actualDate;
	}
	
	public Double getActualAmount() {
		return this.actualAmount;
	}
	
	public void setActualAmount(Double actualAmount) {
		this.actualAmount = actualAmount;
	}
	
	public Double getActualQuantity() {
		return this.actualQuantity;
	}
	
	public void setActualQuantity(Double actualQuantity) {
		this.actualQuantity = actualQuantity;
	}
	
	public Double getActualPrice() {
		return actualPrice;
	}

	public void setActualPrice(Double actualPrice) {
		this.actualPrice = actualPrice;
	}

	public Long getTransactionId() {
		return this.transactionId;
	}
	
	public void setTransactionId(Long transactionId) {
		this.transactionId = transactionId;
	}
	

}